<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <ul>
      <li>5</li>
      <li>4</li>
      <li>3</li>
      <li>2</li>
      <li>1</li>
    </ul>
  </body>
</html>
<script>
  //   let arr = [1, 2, 3, 4];
  //   let arr1 = [5, 6, 7, 8];
  //   let arr3 = [9, 10, 11];
  //   let arr2 = arr.concat(arr1, arr3);
  //   console.log(arr2);

  //   let arr2 = [...arr, ...arr1, ...arr3];
  //   console.log(arr2);

  //   let arr = [
  //     { name: "猫粮", price: 50 },
  //     { name: "狗粮", price: 40 },
  //     { name: "猪粮", price: 60 },
  //   ];

  //   let arr1 = arr.map((item) => {
  //     // console.log(item);
  //     return {
  //       ...item,
  //       flag: false,
  //     };
  //   });

  //   console.log(arr1);

  //   let arr = [1, 2, 3, 4, 5, 6, 7];
  //   let i = 0;
  //   let bool = arr.some((item) => {
  //     i++;
  //     console.log(i);
  //     return item > 4;
  //   });
  //   // 只要有一个符合条件，就会返回 true 并且结束循环
  //   console.log(bool);

  //   every 所有的都符合条件，才会返回 true,只要有一个不符合，就返回false

  //   let obj = {
  //     name: "佩洛西",
  //     age: 55,
  //     dic: "不作死，就不会死",
  //   };

  // 使用 for in 来遍历对象的时候 n 属性名 来遍历数组的时候， n 是下标
  //   for (let n in obj) {
  //     console.log(n);
  //   }
  //
  //   for (let n in arr) {
  //     console.log(n);
  //   }

  // 使用 for of 来遍历数组的时候，n 是数组的每一项
  // for of 不能用来遍历对象
  //   for (let n of obj) {
  //     console.log(n);
  //   }

  //   console.log(arr.unshift(11));
  let arr = [1, 2, 3, 4, 5, 6, 7];
  // splice 数组的删除和替换，返回的是截取的元素
  // 第一个参数，代表是从哪个地方开始，2 是截取的长度
  // 第n个参数是要替换的 元素
  //   console.log(arr.splice(0, 2, 20, 30, 40, 50));
  //   console.log(arr);

  // slice() 数组的截取，并不会改变原数组

  // 第一个参数是开始的位置  第二个参数是结束的位置（不包含）
  //   console.log(arr.slice(0, 2));
  //   console.log(arr);

  //   console.log(arr.join(","));
  let str = arr.join("-");
  console.log(str);
  // split 字符串的方法，以某个符号为分割符，转换数组
  console.log(str.split("-"));

  //闭包 一个作用域，有权访问，另外一个作用域的变量，我们称为闭包
  //   function fn() {
  //     let a = 10;
  //     setTimeout(() => {
  //       console.log(a);
  //     });
  //   }
  //   fn();

  let dom = document.querySelectorAll("li");
  //   dom.forEach((n, index) => {
  //     n.onclick = function () {
  //       console.log(index);
  //     };
  //   });
  for (var i = 0; i < dom.length; i++) {
    (function (val) {
      dom[i].onclick = function () {
        console.log(val);
      };
    })(i);
  }
</script>
